package com.ddpt.platform.common.export.dto.order;

import com.ddpt.platform.common.export.dto.ExportRequestDto;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 订单详情导出Dto
 *
 * @author : zhanggsc
 * @Data : 2023/3/7 13:50
 */
@Getter
@Setter
public class OrderInfoDto extends ExportRequestDto {

    /**
     * 是否要包含微信立减金发放记录
     */
    private boolean withWxOrderInfo;

    /**
     * 活动名称或商城名称
     */
    private String detail;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 业务类型对应的id
     */
    private Long businessId;

    /**
     * 商品类型
     */
    private String goodsType;

    /**
     * 订单标题
     */
    private String title;

    /**
     * 规格名称
     */
    private String productName;

    /**
     * 支付类型
     */
    private String payType;

    /**
     * 订单编号 (自动生成)
     */
    private String orderNo;

    /**
     * 渠道商订单号
     */
    private String channelOrderNo;

    /**
     * 商品所属商家id(可能为空)
     */
    private Long storeId;

    /**
     * 下单用户id
     */
    private Long orderUserId;

    /**
     * 下单用户手机号
     */
    private String userPhone;

    /**
     * 充值账号
     */
    private String rechargeAccount;

    /**
     * 订单大状态,多条逗号分割
     */
    private String status;

    /**
     * 订单当前需要的服务类型： normal-正常服务
     */
    private String serveType;

    /**
     * 订单完成时间-查询开始
     */
    private Long finishStartTime;

    /**
     * 订单完成时间-查询结束
     */
    private Long finishEndTime;

    /**
     * 订单创建时间-查询开始
     */
    private Long createStartTime;

    /**
     * 订单创建时间-查询结束
     */
    private Long createEndTime;

    /**
     * 商家商品id
     */
    private List<Long> storeGoodsIds;

    /**
     * 订单商品id
     */
    private List<Long> businessGoodsIds;

    /**
     * 订单id集合
     */
    private List<Long> orderIds;


    /**
     * 异常订单状态 0未处理，1已处理
     */
    private Integer excHandleStatus;

    /**
     * 是否要包含代币名称
     */
    private boolean withCurrencyName;

    /**
     * 是否要包含商户名称
     */
    private boolean withMerchantUserName;

    /**
     * 是否要包含异常订单
     */
    private boolean withExceptionOrder;

    /**
     * 是否要包含拓展订单
     */
    private boolean withExtOrder;

    /**
     * 是否要包含机构名称
     */
    private boolean withInsName;

    /**
     * 是否要包含商家名称
     */
    private boolean withStoreName;

    /**
     * 是否要包含代子订单
     */
    private boolean withSubOrders;


    @Override
    public String toString() {
        return "InfoDto{" +
                "detail='" + detail + '\'' +
                ", businessType='" + businessType + '\'' +
                ", businessId=" + businessId +
                ", goodsType='" + goodsType + '\'' +
                ", title='" + title + '\'' +
                ", productName='" + productName + '\'' +
                ", payType='" + payType + '\'' +
                ", orderNo='" + orderNo + '\'' +
                ", channelOrderNo='" + channelOrderNo + '\'' +
                ", storeId=" + storeId +
                ", orderUserId=" + orderUserId +
                ", userPhone='" + userPhone + '\'' +
                ", rechargeAccount='" + rechargeAccount + '\'' +
                ", status='" + status + '\'' +
                ", serveType='" + serveType + '\'' +
                ", finishStartTime=" + finishStartTime +
                ", finishEndTime=" + finishEndTime +
                ", createStartTime=" + createStartTime +
                ", createEndTime=" + createEndTime +
                ", storeGoodsIds=" + storeGoodsIds +
                ", businessGoodsIds=" + businessGoodsIds +
                ", orderIds=" + orderIds +
                ", excHandleStatus=" + excHandleStatus +
                ", withCurrencyName=" + withCurrencyName +
                ", withMerchantUserName=" + withMerchantUserName +
                ", withExceptionOrder=" + withExceptionOrder +
                ", withExtOrder=" + withExtOrder +
                ", withInsName=" + withInsName +
                ", withStoreName=" + withStoreName +
                ", withSubOrders=" + withSubOrders +
                '}';
    }

    /**
     * 子类dto自定义-参数拼接方法
     * @return
     */
    @Override
    public String montage() {
        return super.montage() + this;
    }

}
